package LeetCode;

/**
 * @Author:galaxy_yan
 * @Date: 2022/10/7
 * @Time: 16:20
 * @Description
 * https://leetcode.cn/problems/merge-sorted-array/
 */
public class Merge {
    public static void merge(int[] nums1, int m, int[] nums2, int n) {
        int p1=m-1;
        int p2=n-1;
        for (int i = nums1.length-1; i >=0 ; i--) {
            if(p1<0){
//                nums1中的元素已经全部安顿好
                nums1[i]=nums2[p2];
                p2--;
            }else if(p2<0){
                nums1[i]=nums1[p1];
                p1--;
            }else{
//                两个数组均有元素存在
                if(nums1[p1]>=nums2[p2]){
                    nums1[i]=nums1[p1];
                    p1--;
                }else{
                    nums1[i]=nums2[p2];
                    p2--;
                }
            }
        }
    }

    public static void main(String[] args) {
        int[] nums1 = {1,2,3,0,0,0};
        int m = 3;
        int[] nums2 = {2, 5, 6};
        int n = 3;
        merge(nums1,m,nums2,n);
        for (int i:
                nums1) {
            System.out.println(i);
        }
    }
}
